
const mongoose = require('mongoose');
const Cate=require('../model/cate.model');


//增
exports.create=function(req,res,next){
    const cate=new Cate(req.body);//实例化对象,req,body表示post的数据提交,并且参数从body中获取
    cate.save().then(data=>{//数据保存,在保存后将数据用json格式输出
        res.json(data);
    })
}

//改
//参数三种传递方式:req.body,req.query,req.params
exports.update=function(req,res,next){
    const id=req.params.id;//查找一个id
    Cate.findByIdAndUpdate(id,{$set:req.body},{new:false}).then(data=>{
        res.json(data);
    });
};


//pid==parentid
function reverseTree(data,pid){
    var result=[],
    temp;

    //将数据模型的data转成字符串,在将字符串转成object------>object只是普通的js的object
    var data=JSON.parse(JSON.stringify(data));
    for(var i in data){
        if(data[i].parentId===pid){
            result.push(data[i]);
            temp=reverseTree(data,data[i]._id);
            if(temp.length>0){
                data[i].children=temp;
            }
        }
    }
    return result;
}
//列表
exports.list=function(req,res,next){
    var type=req.params.type;
    Cate.find({type:type},function(err,data){
        var rpTree=reverseTree(data,null);
        res.json(rpTree);
    })
}


//删
exports.remove=function(req,res,next){
    var id=req.params.id;
    var ids=[];

    Cate.findOne({_id:id},function(err,doc){
        if(doc){
            ids=[doc._id];
            doc.getChildren(function(err,docs){
                var dl=docs.length
                for(var i=0;i<dl;i++){
                    ids.push(docs[i]._id);
                }
                Cate.remove({_id:{$in:ids}}).then(data=>{
                    res.json({message:'删除成功'});
                })
            });
        }
    })
}
